@REM 这是一个用于烧录程序的批处理文件，请不要修改！！
@REM 

echo off
cls
chcp 65001
date /t
echo 程序开始执行

setlocal enabledelayedexpansion

@REM 必要的初始化参数,可根据实际情况修改
set TOOL_NAME=STM32_Programmer_CLI.exe
set TOOL_PORT=jlink
set TOOL_SPEED=4000

@REM 0x1FFF7590 G0芯片的SN地址
set CHIP_SNADDR=0x1FFFF7E8
set CHIP_UNRDP=0xA5
set CHIP_RDP=0x00
set CHIP_BOOT=0x8000000

set CMDSTR=%TOOL_NAME% -c port=%TOOL_PORT% freq=%TOOL_SPEED% 


echo 获取设备SN号码...
%CMDSTR% -r %CHIP_SNADDR% 12 sn.bin

@REM 等待5秒，防止上一个操作未完成
timeout 5
echo 计算CRC32校验码...
crc32_mpeg22.exe

@REM 命令拼接
set ALLCMDSTR=%CMDSTR%

@REM 解除芯片的读保护，解除芯片写保护 WRP0 ~ WRP31 = 1
echo 解除芯片的读保护... 
set "ALLCMDSTR=%ALLCMDSTR% -ob rdp=%CHIP_UNRDP% -ob WDG_SW=1 nRST_STOP=1 nRST_STDBY=1 Data0=0xff Data1=0xff"

for /l %%i in (0,1,31) do (
    set "ALLCMDSTR=!ALLCMDSTR! WRP%%i=1"
)

echo 烧录参数...
@REM %CMDSTR% -w param.bin  0x8004000 -v
set "ALLCMDSTR=%ALLCMDSTR% -w param.bin  0x8004000 -v"

echo 烧录引导程序...
@REM %CMDSTR% -w boot.bin  0x8000000 -v
set "ALLCMDSTR=%ALLCMDSTR% -w boot.bin  %CHIP_BOOT% -v"

echo 烧录应用程序...
@REM %CMDSTR% -w app.bin  0x8004800 -v
set "ALLCMDSTR=%ALLCMDSTR% -w app.bin  0x8004800 -v"

@REM echo 烧录用户数据...
@REM %CMDSTR% -w data.bin  0x8004800

echo 设置读保护...
@REM %CMDSTR% -ob rdp=0x00
@REM set "ALLCMDSTR=%ALLCMDSTR% -ob rdp=%CHIP_RDP%"

echo 设备重启...
set "ALLCMDSTR=%ALLCMDSTR% -s %CHIP_BOOT%"

echo 最终 %ALLCMDSTR%

@REM 执行命令
%ALLCMDSTR%

endlocal

pause